const cluster = require('cluster')
const http = require('http')
const cpuNums = require('os').cpus().length


// 可以使用cluster集群来实现打开多进程的方式进行任务的执行
// cluster 模块可以创建共享服务器端口的子进程
// 每一个进程运行在每一个cpu上，一共8个cpu
if(cluster.isMaster){

    console.log(`主线程${process.pid}`)

    let i =0
    while (++i<cpuNums){
        cluster.fork()
    }

    setTimeout(()=>{
        cluster.on('exit', ((worker, code, signal) => {
            console.log(`工作进程${worker.process.pid}已经退出！`)
        }))
    },100)

}else{
    http.createServer((req, res) => {
        res.writeHead(200);
        res.end('你好世界！');
    }).listen(8000);

    console.log(`工作进程${process.pid}`)
}
